import com.fasterxml.jackson.databind.ObjectMapper;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

// 处理 body 格式为 json 的 post 请求

class User {
    public int userId;
    public int classId;
}

@WebServlet("/postJson")
public class PostJsonServlet extends HttpServlet {
    // 1. 创建一个 Jackson 的核心对象
    private  ObjectMapper objectMapper = new ObjectMapper();

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 2. 读取 body 中的请求, 使用 ObjectMapper 解析
        // readValue 就是把 json 格式的字符串, 转成 Java 对象
        // 第一个参数, 表示对哪个字符串进行转换,
        // 可以是 String 对象, 可以是 InputStream 对象, 还可以是 File 对象
        // 第二个参数, 表示要把这个 json 格式的字符串, 转为哪个 java 对象
        User user = objectMapper.readValue(req.getInputStream(), User.class);
        resp.getWriter().write("userId = " + user.userId
                + ", classId = " + user.classId);
    }
}
